home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Suzy B Software 2
/
Suzy B Software CD-ROM 2 (1994).iso
/
extras
/
programm
/
gemfsc20
/
gemfsc20.lzh
/
GNUGEM27
/
AESRSRC.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-03-24
|
3KB
|
130 lines
/*
* Aes resource library interface
*
* rsrc_load Load a resource into memory
* rsrc_free Free memory allocated by rsrc_load
* rsrc_gaddr Gets the address of a resource tree
* rsrc_saddr Stores the address of a resource in memory
* rsrc_obfix Converts Char to Pixel coordinate for obj loc.
*
* ++jrb bammi@cadence.com
* modified: mj -- ntomczak@vm.ucs.ualberta.ca
*/
#include "common.h"
/* Load a resource file into memory
* return =0 on error >0 no error
*/
#ifdef __DEF_ALL__
#define L_rsrc_loa
#define L_rsrc_fre
#define L_rsrc_gad
#define L_rsrc_sad
#define L_rsrc_obf
#endif /* __DEF_ALL__ */
#ifdef L_rsrc_loa
int rsrc_load(char *Name)
{
_addrin[0] = Name;
return __aes__(AES_CONTROL_ENCODE(110, 0, 1, 1));
}
#endif /* L_rsrc_loa */
#ifdef L_rsrc_fre
/* Free memory allocated by rsrc_load
* return =0 error >0 no error
*/
int rsrc_free(void)
{
return __aes__(AES_CONTROL_ENCODE(111, 0, 1, 0));
}
#endif /* L_rsrc_fre */
#ifdef L_rsrc_gad
/* get the address of resource in mem
*
* Type: see object types below
* returns 0 on error >0 no error
*/
int rsrc_gaddr(int Type, int Index, /* inputs */
void **Address) /* outputs */
{
int retval;
_int_in[0] = Type; /* type of object (see below) */
_int_in[1] = Index;
#ifdef __OLD__
/* see hack in common.c for control[4] */
retval = __aes__(AES_CONTROL_ENCODE(112, 2, 1, 0));
#else
_control[4] = 1;
retval = __aes__(AES_CONTROL_ENCODE(112, 2, 1, 0));
_control[4] = 0;
#endif
*Address = _addrout[0];
return retval;
}
#endif /* L_rsrc_gad */
#ifdef L_rsrc_sad
/* store addr of data struct in mem
* return =0 error >0 no error
*/
int rsrc_saddr(int Type, int Index, void *Address)
{
_int_in[0] = Type;
_int_in[1] = Index;
_addrin[0] = Address;
return __aes__(AES_CONTROL_ENCODE(113, 2, 1, 1));
}
#endif /* L_rsrc_sad */
#ifdef L_rsrc_obf
/* Fix pixel coordinate of Object
* always returns 1
*/
int rsrc_obfix(void *Tree, int Index)
{
_int_in[0] = Index; /* Index of Object in Tree */
_addrin[0] = Tree; /* Address of Tree containing Object */
return __aes__(AES_CONTROL_ENCODE(114, 1, 1, 1));
}
#endif /* L_rsrc_obf */
/*
* Object Types
* 0 Tree
* 1 Object
* 2 TedInfo (for any object containing an editable string)
* 3 IconBlk
* 4 BitBlock
* 5 string
* 6 image data
* 7 obspec
* 8 te_ptext text field of a Tedinfo
* 9 te_ptmplt template field of a TedInfo
* 10 te_pvalid valid field of a TedInfo
* 11 ib_pmask for Icon Block
* 12 ib_pdata
* 13 ib_ptext
* 14 bi_pdata for BitBlock
* 15 ad_frstr address of pointer to free string
* 16 ad_frimg address of pointer to free image
*/
/* - eof - */